§ Fox3.0 Android外壳新特性

§ 1.Fox3.0外壳介绍

该版本的特点能支持多APP的独立运行,为每个APP提供独立的服务请求器和文件访问器,为超级APP而生。

§ 2.小程序导航

§ fox.navigator

打开、切换和关闭小程序,并且提供了小程序间通信功能

§ 打开小程序

fox.navigator.open(id, name, appType, params, (code, message, data)=>{})
参数说明

  • id:唯一ID,该ID可用于切换或关闭小程序

  • name:小程序对应的工程名

  • appType: 有以下几种类型

    appType 描述
    main_app 主应用
    h5_app 小程序应用,本地模式,web资源下载到本地
    web_app 小程序应用,BS模式
    other 主要用于打开第三方系统页面
    page 新窗口,用于MPA多页面模式
  • params:参数,为json格式,主要参数有:

    参数名称 参数含义 默认值
    cover 应用打开时候是否加载loading界面 true
    checkUpdate 应用打开是否是否启动检查更新机制 true
    title 标题内容 null
    titleBarVisibility 是否显示标题 true
    canBack 是否支持回退 true
    orientation 界面方向 null
    updateAddress 更新下载地址 null
    userAgent 浏览器代理名 null
    webViewType web view类型 null
    path 打开的网页路径 index.html
  • callbck:回调函数

§ 切换小程序

fox.navigator.change(id,(code, message, data)=>{})
参数说明

  • id:唯一ID,目标小程序的ID
  • callbck:回调函数

§ 关闭小程序

fox.navigator.close(id,(code, message, data)=>{})
参数说明

  • id:唯一ID,目标小程序的ID
  • callbck:回调函数

§ 回退小程序(关闭最上层一个小程序)

fox.navigator.back((code,message,data)=>{})
参数说明

  • callbck:回调函数

§ 小程序间通信

fox.navigator.command(id, type, data)
参数说明

  • id 目标小程序ID
  • type 消息类型
  • data: 消息内容

§ 小程序注册消息接收函数

fox.navigator.registerMessageService(type,(type,data)=>{})
参数说明

  • type 消息类型
  • callback: 消息处理函数

§ 3.共享存储

提供了小程序间数据共享机制

fox.shareBus
该存储的数据结构为树状结构的数据篮子,分别提供数据存储、数据获取、数据修改和数据删除的接口

API

  • put 增加数据
  • get 获取数据
  • remove 删除数据

例子

TIP

//1.数据储存
//一层
let data = {
id: "01",
name: "一层数据"
}
//保存数据
fox.bus.put("level", data);
//二层 var data2 = { id: "02", name: "二层数据" } //保存数据 fox.shareBus.put("level", "level-2-1", data2);
//三层
let data3 = {
id: "03",
name: "三层数据"
}
//保存数据
fox.shareBus.put("level", "level-2-2", "level-3", data3);
//2.数据获取
var data = fox.shareBus.get("level");
alert("一层数据:" + JSON.stringify(data));
var data2 = fox.shareBus.get("level", "level-2-1");
alert("二层数据:" + JSON.stringify(data2));
var data3 = fox.shareBus.get("level", "level-2-2", "level-3");
alert("三层数据:" + JSON.stringify(data3))
//3数据修改
var n=0;
n++;
var data = fox.shareBus.get("level");
data.name = data.name + ",修改次数:" + n;
var data2 = fox.shareBus.get("level", "level-2-1");
data2.name = data2.name + ",修改次数:" + n;
var data3 = fox.shareBus.get("level", "level-2-2", "level-3");
data3.name = data3.name + ",修改次数:" + n;
//4数据删除 fox.shareBus.remove("level");

§ 4.原生插件开发

  • old: class HttpClient extends FXProxy
  • new: class HttpClient extends AProxy

新的插件开发继承类改为AProxy,该对象的提供了下面方法

  • HttpRequester getHttpRequester() 小程序独立的HTTP访问器,为每个小程序隔离的session。
  • FileAccessor getFileAccessor()小程序独立的文件访问器,为每个小程序隔离的文件目录

§ 5.Device插件开发

  • old:
public interface IDevice {

    /**
     * 外设调用
     *
     * @param type
     * @param action
     * @param param
     * @param callbackContext
     */
    void call(String type, String action, String param, ICallback callbackContext);
}
1
2
3
4
5
6
7
8
9
10
11
12
  • new:
public interface IDevice {
    /**
     * 外设调用
     *
     * @param type
     * @param action
     * @param param
     * @param callbackContext
     * @param cite
     */
    void call(String type, String action, String param, ICallback callbackContext, Cite cite);
}
1
2
3
4
5
6
7
8
9
10
11
12

新旧对比,新的call函数中新的多一个cite参数,该参数能够提供调用小程序独立的HttpRequester和FileAccessor

  • HttpRequester getHttpRequester() 小程序独立的HTTP访问器,为每个小程序隔离的session。
  • FileAccessor getFileAccessor()小程序独立的文件访问器,为每个小程序隔离的文件目录

§ 6.Native插件开发

  • old:
public interface INative {

    /**
     * navie调用
     *
     * @param action
     * @param param
     * @param callbackContext
     */
    void call(String action, String param, ICallback callbackContext);
}
1
2
3
4
5
6
7
8
9
10
11
  • new:
public interface INative {

    /**
     * native调用
     *
     * @param action
     * @param param
     * @param callbackContext
     * @param cite
     */
    void call(String action, String param, ICallback callbackContext, Cite cite);
}
1
2
3
4
5
6
7
8
9
10
11
12

新旧对比,新的call函数中新的多一个cite参数,该参数能够提供调用小程序独立的HttpRequester和FileAccessor

  • HttpRequester getHttpRequester() 小程序独立的HTTP访问器,为每个小程序隔离的session。
  • FileAccessor getFileAccessor()小程序独立的文件访问器,为每个小程序隔离的文件目录
最后更新于: 4/15/2022, 2:41:22 PM